#include "commonuse.h"

int main()
{
    // char n3[20] = "\0";
    // scanf("%s",n3);//当这里就输入n3的时候，我们知道
    // //是因为n3就是首元素的地址
    // //scanf("%s", &n3);这个也可以的原因是，取地址n3，表示整个数组的地址，因此用来赋值也没问题
    char *n3 = "\0";
    // scanf("%s",n3);//这种写法是会报错的，原因是相当于把字符串内容拿给一个字符，这里并没有去提前申请字符指针后面的空间自然报错，也就是越界访问
    //也就相当于数组类型赋值给整形的感觉自然抱错
    scanf("%s",&n3);//这里再对&n3，那么这里就不是整个字符串的地址了，这就是二级指针的地址，那么你在%s就是把%s的内容
    //赋值给一级指针，这个时候其实就已经形成野指针了，也就是说，你这个n3所指的地址，并没有开拓
    //也不知道是哪里自然就会造成问题。
    printf("%s",n3);
    system("pause");
    return 0;
}